#include <QtGui>
#include "../header/MaFenetre.h"

using namespace std;

MaFenetre::MaFenetre() : QMainWindow()
{
	if (this->objectName().isEmpty())
		this->setObjectName(QString::fromUtf8("projetClass"));
	this->resize(1200, 800);
	this->setCursor(QCursor(Qt::ArrowCursor));
	this->setStyleSheet(QString::fromUtf8(""));
	this->setWindowTitle(QApplication::translate("projetClass", "Pictures Project", 0, QApplication::UnicodeUTF8));

	// Action du menu Fichier
	actionOuvrir = new QAction(this);
	actionOuvrir->setObjectName(QString::fromUtf8("actionOuvrir"));
	actionFermer = new QAction(this);
	actionFermer->setObjectName(QString::fromUtf8("actionFermer"));
	actionEnregistrer = new QAction(this);
	actionEnregistrer->setObjectName(QString::fromUtf8("actionEnregistrer"));
	actionEnregistrer_sous = new QAction(this);
	actionEnregistrer_sous->setObjectName(QString::fromUtf8("actionEnregistrer_sous"));
	actionQuitter = new QAction(this);
	actionQuitter->setObjectName(QString::fromUtf8("actionQuitter"));

	// Action du menu Edition
	actionCopier = new QAction(this);
	actionCopier->setObjectName(QString::fromUtf8("actionCopier"));
	actionColler = new QAction(this);
	actionColler->setObjectName(QString::fromUtf8("actionColler"));

	// Action du menu ?
	actionAide = new QAction(this);
	actionAide->setObjectName(QString::fromUtf8("actionAide"));
	actionA_Propos = new QAction(this);
	actionA_Propos->setObjectName(QString::fromUtf8("actionA_Propos"));

	centralwidget = new QWidget(this);
	centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
	this->setCentralWidget(centralwidget);
	menubar = new QMenuBar(this);
	menubar->setObjectName(QString::fromUtf8("menubar"));
	menubar->setGeometry(QRect(0, 0, 800, 22));

	menuFichier = new QMenu(menubar);
	menuFichier->setObjectName(QString::fromUtf8("menuFichier"));
	menuEdition = new QMenu(menubar);
	menuEdition->setObjectName(QString::fromUtf8("menuEdition"));
	menuAide = new QMenu(menubar);
	menuAide->setObjectName(QString::fromUtf8("menuAide"));

	this->setMenuBar(menubar);

	statusbar = new QStatusBar(this);
	statusbar->setObjectName(QString::fromUtf8("statusbar"));
	this->setStatusBar(statusbar);

	menubar->addAction(menuFichier->menuAction());
	menubar->addAction(menuEdition->menuAction());
	menubar->addAction(menuAide->menuAction());

	menuFichier->addAction(actionOuvrir);
	menuFichier->addAction(actionFermer);
	menuFichier->addSeparator();
	menuFichier->addAction(actionEnregistrer);
	menuFichier->addAction(actionEnregistrer_sous);
	menuFichier->addSeparator();
	menuFichier->addAction(actionQuitter);

	menuEdition->addAction(actionCopier);
	menuEdition->addAction(actionColler);

	menuAide->addAction(actionAide);
	menuAide->addAction(actionA_Propos);
	
	
	
	//decoupe des 2 partie de la fenetre
	QHBoxLayout *forme = new QHBoxLayout(this);
	
	// Partie de gauche
	QLabel *page_principal = new QLabel(this);
	page_principal->setGeometry(20,20,400,600);
	
	QLabel *text_apercu = new QLabel("Votre image :", page_principal);
	text_apercu->setGeometry(10, 100, 200, 40);
	
	QFrame *img_bordure = new QFrame(page_principal);
	img_bordure->setFrameShape(QFrame::StyledPanel);
	img_bordure->setGeometry(10, 150, 310, 310);
	
	label_img = new QLabel(page_principal);
	label_hauteur_img = new QLabel(page_principal);
	label_hauteur_img->setGeometry(10, 40, 200, 40);
	label_largeur_img = new QLabel("Largeur pixel :", page_principal);
	label_largeur_img->setGeometry(10, 70, 200, 40);
		
	
	
	// Partie de droite
	QTabWidget *onglets = new QTabWidget(this);
    onglets->setGeometry(400, 20, 760, 760);
	
    QLabel *page_photometrie = setPage_Photometrie(this);
	QLabel *page_arithmetique = setPage_Arithmetique(this);

	QLabel *page_geometrique = new QLabel;
	QLabel *page_conversion = new QLabel;
	QLabel *page_options = new QLabel;
	
	onglets->addTab(page_photometrie, "Photometrie");
    onglets->addTab(page_arithmetique, "Arithmetique");
    onglets->addTab(page_geometrique, "Geometrique");
    onglets->addTab(page_conversion, "Conversion");
    onglets->addTab(page_options, "Options");
	
	forme->addWidget(page_principal);
	forme->addWidget(onglets);
	
	
	fichierDeSauvegarde = "";
	

	//translate
	actionOuvrir->setText(QApplication::translate("projetClass", "Ouvrir", 0, QApplication::UnicodeUTF8));
	actionOuvrir->setShortcut(QApplication::translate("projetClass", "Ctrl+O", 0, QApplication::UnicodeUTF8));
	actionFermer->setText(QApplication::translate("projetClass", "Fermer", 0, QApplication::UnicodeUTF8));
	actionEnregistrer->setText(QApplication::translate("projetClass", "Enregistrer", 0, QApplication::UnicodeUTF8));
	actionEnregistrer_sous->setText(QApplication::translate("projetClass", "Enregistrer sous", 0, QApplication::UnicodeUTF8));
	actionAide->setText(QApplication::translate("projetClass", "Aide", 0, QApplication::UnicodeUTF8));
	actionA_Propos->setText(QApplication::translate("projetClass", "A Propos", 0, QApplication::UnicodeUTF8));
	actionQuitter->setText(QApplication::translate("projetClass", "Quitter", 0, QApplication::UnicodeUTF8));
	actionQuitter->setShortcut(QApplication::translate("projetClass", "Ctrl+Q", 0, QApplication::UnicodeUTF8));
	actionCopier->setText(QApplication::translate("projetClass", "Copier", 0, QApplication::UnicodeUTF8));
	actionColler->setText(QApplication::translate("projetClass", "Coller", 0, QApplication::UnicodeUTF8));
	menuFichier->setTitle(QApplication::translate("projetClass", "Fichier", 0, QApplication::UnicodeUTF8));
	menuEdition->setTitle(QApplication::translate("projetClass", "Edition", 0, QApplication::UnicodeUTF8));
	menuAide->setTitle(QApplication::translate("projetClass", "Aide", 0, QApplication::UnicodeUTF8));

	// connection des signal au slot
	QObject::connect(actionQuitter, SIGNAL(triggered()), this, SLOT(close()));
	QObject::connect(actionOuvrir, SIGNAL(triggered()), this, SLOT(ouvrirImage()));
	QObject::connect(actionFermer, SIGNAL(triggered()), this, SLOT(fermerImage()));

	QMetaObject::connectSlotsByName(this);
}

void MaFenetre::ouvrirImage()
{
	QString fichier = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Images (*.jpg *.jpeg *.ppm)");
	// QMessageBox::information(this, "Fichier", "Vous avez sÃˆlectionnÃˆ :\n" + fichier);
	
	// CrÃ©ation de l'image principale
	img = QImage(fichier);

	label_hauteur_img->setText(tr("Hauteur pixel : %1").arg(img.height()));
	label_largeur_img->setText(tr("Largeur pixel : %1").arg(img.width()));

	// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
	if(img.height()>img.width())
		thumb = img.scaledToHeight(300);
	else
		thumb = img.scaledToWidth(300);
	
	// CrÃ©ation de la QPixmap servant Ã  l'affichage de l'image
	QPixmap pixmap;
	// instancie la QPixmap avec l'image QImage
	pixmap = QPixmap::fromImage(thumb);

	//QLabel *label_img = new QLabel(this);
	label_img->setGeometry(15, 155, 300, 300);
	
	// fixe l'image QPixmap sur le label de la fenetre
    label_img->setPixmap(pixmap);
	label_img->show();
	
	//label_img->setGeometry(20,500,40,40);
    // image->move(100, 20);

}

void MaFenetre::fermerImage()
{
	label_img->hide();
	label_hauteur_img->hide();
	label_largeur_img->hide();
}

void MaFenetre::sauvegarder()
{
	bool reponse = true;
	if(fichierDeSauvegarde.isEmpty())
		reponse = sauvegarderSous();
	
	if(reponse == true)
	{
		// Algo saugevarde  
		img.save(fichierDeSauvegarde);
		isSave = true;
	}
}

bool MaFenetre::sauvegarderSous()
{
    QString fichier = QFileDialog::getSaveFileName(this, "Enregistrer", fichierDeSauvegarde, "Images (*.jpg *.jpeg)");
	
    if(fichier.isEmpty())
        return false;
	
    /*if(QFile::exists(fichier))
	 {
	 int reponse = QMessageBox::question(this, "Attention", "Ce fichier existe dÃ©jÃ  !\nVoulez-vous l'Ã©craser ?", QMessageBox::Yes | QMessageBox::No);
	 
	 if (reponse == QMessageBox::No)
	 return false;
	 }*/
    fichierDeSauvegarde = fichier;
    sauvegarder();
    
    return true;
}

void MaFenetre::photometrie_negatif()
{
	//QMessageBox::information(this, "Fichier", "NEGATIF");
	img_modif = img;
	img_modif.invertPixels();
	label_photometrie_img->setPixmap(QPixmap::fromImage(img_modif));
	label_photometrie_img->setGeometry(20,120, 700, 600);
	
}

void MaFenetre::photometrie_luminosite()
{


	slide_luminosite->setSliderPosition(255);
	MaFenetre::photometrie_luminosite(255);

}

void MaFenetre::photometrie_luminosite(int l=255)
{

	int diff = l-255;
	img_modif = img;
	int i, red, green, blue;
	for(int x = 0;x<img_modif.width();x++)
	{
		for (int y=0; y<img_modif.height(); y++) {
			i = img_modif.pixel(x,y);
			
			red=qRed(i)+diff;
			if(red>255)
				red=255;
			if(red<0)
				red=0;
			
			green=qGreen(i)+diff;
			if(green>255)
				green=255;
			if(green<0)
				green=0;
			
			blue=qBlue(i)+diff;
			if(blue>255)
				blue=255;
			if(blue<0)
				blue=0;
			
			img_modif.setPixel(x, y, qRgb(red, green, blue));
		}
		
	}
	
	
	
	label_photometrie_img->setPixmap(QPixmap::fromImage(img_modif));
	label_photometrie_img->setGeometry(20,120, 700, 600);
}

void MaFenetre::photometrie_exploitation()
{
	int i;
	img_modif = img;
	int tab[255];
	for (int j = 1; j < 256; j++) {
		tab[j] = 0;
	}

	for(int x = 0;x<img_modif.width();x++)
	{
		for (int y=0; y<img_modif.height(); y++) {
			i = img_modif.pixel(x,y);
			tab[qGray(i)]++;
		}
	}

}


QLabel* MaFenetre::setPage_Photometrie(MaFenetre* ma_fenetre)
{
	QLabel *page_photometrie = new QLabel;

	// Fonction NEGATIF
	QGroupBox *gb_negatif = new QGroupBox("Negatif", page_photometrie);
	gb_negatif->setGeometry(20,20, 100, 50);
	btn_negatif = new QPushButton("Negatif", gb_negatif);
	btn_negatif->move(10,20);

	// Fonction LUMINOSITE
	QGroupBox *gb_luminosite = new QGroupBox("Luminosite", page_photometrie);
	gb_luminosite->setGeometry(150,20, 100, 80);
	btn_luminosite = new QPushButton("Luminosite", gb_luminosite);
	btn_luminosite->move(10,20);
	slide_luminosite = new QSlider(Qt::Horizontal, gb_luminosite);
	slide_luminosite->setMaximum(510);
	slide_luminosite->setSliderPosition(255);
	slide_luminosite->move(10,50);

	// Fonction EXPLOITATION
	QGroupBox *gb_exploitation = new QGroupBox("Exploitation", page_photometrie);
	gb_exploitation->setGeometry(280,20, 100, 50);
	QPushButton *btn_exploitation = new QPushButton("Exploitation", gb_exploitation);
	btn_exploitation->move(10,20);

	label_photometrie_img = new QLabel(page_photometrie);


	QObject::connect(btn_negatif, SIGNAL(clicked()), ma_fenetre, SLOT(photometrie_negatif()));
	QObject::connect(btn_luminosite, SIGNAL(clicked()), ma_fenetre, SLOT(photometrie_luminosite()));
	QObject::connect(slide_luminosite, SIGNAL(valueChanged(int)), ma_fenetre, SLOT(photometrie_luminosite(int)));
	QObject::connect(btn_exploitation, SIGNAL(clicked()), ma_fenetre, SLOT(photometrie_exploitation()));

	return page_photometrie;

}

void MaFenetre::ouvrirImageArithmetique()
{
	QString fichier = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Images (*.jpg *.jpeg *.ppm)");
	// QMessageBox::information(this, "Fichier", "Vous avez sÃˆlectionnÃˆ :\n" + fichier);

	// CrÃ©ation de l'image principale
	img_arithmetique = QImage(fichier);


	// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
	if(img_arithmetique.height()>img_arithmetique.width())
		thumb_arithmetique = img_arithmetique.scaledToHeight(300);
	else
		thumb_arithmetique = img_arithmetique.scaledToWidth(300);



	label_arithmetique_img->setPixmap(QPixmap::fromImage(thumb_arithmetique));
	label_arithmetique_img->setGeometry(20,140, 300, 300);

	//label_img->setGeometry(20,500,40,40);
    // image->move(100, 20);

}
void MaFenetre::arithmetique_addition()
{

		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					if (qRed(pixel1)+qRed(pixel2)<255)
						red=qRed(pixel1)+qRed(pixel2);
					else
						red=255;
					if (qGreen(pixel1)+qGreen(pixel2)<255)
						green=qGreen(pixel1)+qGreen(pixel2);
					else
						green=255;
					if (qBlue(pixel1)+qBlue(pixel2)<255)
						blue=qBlue(pixel1)+qBlue(pixel2);
					else
						blue=255;

					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}

		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

void MaFenetre::arithmetique_soustraction()
{

		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					if (qRed(pixel1)-qRed(pixel2)>0)
						red=qRed(pixel1)-qRed(pixel2);
					else
						red=0;
					if (qGreen(pixel1)-qGreen(pixel2)>0)
						green=qGreen(pixel1)-qGreen(pixel2);
					else
						green=0;
					if (qBlue(pixel1)-qBlue(pixel2)>0)
						blue=qBlue(pixel1)-qBlue(pixel2);
					else
						blue=0;

					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}

		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

void MaFenetre::arithmetique_multiplication()
{
		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					red=(int)(qRed(pixel1)*qRed(pixel2)/255);
					green=(int)(qGreen(pixel1)*qGreen(pixel2)/255);
					blue=(int)(qBlue(pixel1)*qBlue(pixel2)/255);

					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}
		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

void MaFenetre::arithmetique_division()
{
		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					if (qRed(pixel2)!=0 && qRed(pixel1)/qRed(pixel2)*255<255)
						red=qRed(pixel1)/qRed(pixel2)*255;
					else
						red=255;
					if (qGreen(pixel2)!=0 && qGreen(pixel1)/qGreen(pixel2)*255<255)
						green=qGreen(pixel1)/qGreen(pixel2)*255;
					else
						green=255;
					if (qBlue(pixel2)!=0 && qBlue(pixel1)/qBlue(pixel2)*255<255)
						blue=qBlue(pixel1)/qBlue(pixel2)*255;
					else
						blue=255;

					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}

		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

void MaFenetre::arithmetique_maximum()
{
		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					if (qRed(pixel1)>qRed(pixel2))
						red=qRed(pixel1);
					else
						red=qRed(pixel2);
					if (qBlue(pixel1)>qBlue(pixel2))
						blue=qBlue(pixel1);
					else
						blue=qBlue(pixel2);
					if (qGreen(pixel1)>qGreen(pixel2))
						green=qGreen(pixel1);
					else
						green=qGreen(pixel2);


					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}

		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

void MaFenetre::arithmetique_minimum()
{
		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					if (qRed(pixel1)<qRed(pixel2))
						red=qRed(pixel1);
					else
						red=qRed(pixel2);
					if (qBlue(pixel1)<qBlue(pixel2))
						blue=qBlue(pixel1);
					else
						blue=qBlue(pixel2);
					if (qGreen(pixel1)<qGreen(pixel2))
						green=qGreen(pixel1);
					else
						green=qGreen(pixel2);


					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}

		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

void MaFenetre::arithmetique_et()
{
		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					red=qRed(pixel1)&qRed(pixel2);
					green=qGreen(pixel1)&qGreen(pixel2);
					blue=qBlue(pixel1)&qBlue(pixel2);

					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}
		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

void MaFenetre::arithmetique_ou()
{
		img_modif = img;
		QRgb pixel1;
		QRgb pixel2;
		int red,blue,green;
		for (int i=0; i<img_modif.width(); i++){
			for(int j=0; j<img_modif.height(); j++){
				if (img_arithmetique.valid(i,j)){
					pixel1 = img_modif.pixel(i,j);
					pixel2 = img_arithmetique.pixel(i,j);

					red=qRed(pixel1)|qRed(pixel2);
					green=qGreen(pixel1)|qGreen(pixel2);
					blue=qBlue(pixel1)|qBlue(pixel2);

					img_modif.setPixel(i,j,qRgb(red,green,blue));
				}
			}
		}

		// redimensionne l'image pour qu'elle est une hauteur ou largeur de 300, tout en conservant les proportionnalitÃ©s
		if(img_modif.height()>img_modif.width())
			thumb_arithmetique_res = img_modif.scaledToHeight(300);
		else
			thumb_arithmetique_res = img_modif.scaledToWidth(300);

		label_arithmetique_res_img->setPixmap(QPixmap::fromImage(thumb_arithmetique_res));
		label_arithmetique_res_img->setGeometry(400,140, 300, 300);

}

QLabel* MaFenetre::setPage_Arithmetique(MaFenetre* ma_fenetre)
{
	QLabel *page_arithmetique = new QLabel();

	QPushButton *btn_ouvrir_page_arithmetique = new QPushButton("Ouvrir",page_arithmetique);
	btn_ouvrir_page_arithmetique->move(20,30);

	// Groupe Box Opération élémentaire
		QGroupBox *gb_elementaire = new QGroupBox("Opérations élémentaires", page_arithmetique);
		gb_elementaire->setGeometry(140,20, 200, 90);
		QPushButton *btn_addition = new QPushButton("Addition", gb_elementaire);
		btn_addition->move(14,25);
		QPushButton *btn_soustraction = new QPushButton("Soustraction", gb_elementaire);
		btn_soustraction->move(14,55);
		QPushButton *btn_multiplication = new QPushButton("Multiplication", gb_elementaire);
		btn_multiplication->move(110,25);
		QPushButton *btn_division = new QPushButton("Division", gb_elementaire);
		btn_division->move(110,55);

	// Groupe Box Opération binaire
		QGroupBox *gb_binaire = new QGroupBox("Opérations binaires", page_arithmetique);
		gb_binaire->setGeometry(360,20, 110, 90);
		QPushButton *btn_et = new QPushButton("ET", gb_binaire);
		btn_et->move(17,25);
		QPushButton *btn_ou = new QPushButton("OU", gb_binaire);
		btn_ou->move(17,55);

	// Groupe Box Opération binaire
		QGroupBox *gb_extremum = new QGroupBox("Extremum", page_arithmetique);
		gb_extremum->setGeometry(490,20, 110, 90);
		QPushButton *btn_max = new QPushButton("Maximum", gb_extremum);
		btn_max->move(17,25);
		QPushButton *btn_min = new QPushButton("Minimum", gb_extremum);
		btn_min->move(17,55);


	label_arithmetique_img = new QLabel(page_arithmetique);
	label_arithmetique_res_img = new QLabel(page_arithmetique);

	QObject::connect(btn_ouvrir_page_arithmetique, SIGNAL(clicked()), ma_fenetre, SLOT(ouvrirImageArithmetique()));
	QObject::connect(btn_addition, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_addition()));
	QObject::connect(btn_soustraction, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_soustraction()));
	QObject::connect(btn_multiplication, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_multiplication()));
	QObject::connect(btn_division, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_division()));
	QObject::connect(btn_max, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_maximum()));
	QObject::connect(btn_min, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_minimum()));
	QObject::connect(btn_et, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_et()));
	QObject::connect(btn_ou, SIGNAL(clicked()), ma_fenetre, SLOT(arithmetique_ou()));

	return page_arithmetique;

}
